home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume90 / util / gdostool / part01 / gdostool.doc next >
Text File  |  1990-10-14  |  1KB  |  31 lines

  1. GdosTool - By J Davis 08/1990
  2.  
  3. Why
  4. ---
  5.  
  6. An  easy  mistake  to make when progrmming in assembler is to accidentally
  7. use  $0 (the value in memory location $0) where you mean #$0 (the constant
  8. value  zero).   A  subtle  mistake - one not aided by the fact that memory
  9. loaction  0  often holds 0, so it will yield the right results.  
  10.  
  11. The first you notice of this problem is when your code is run on some a590
  12. equipped  500's  ,  or  2000s with 2091 controllers, where $0 may actually
  13. hold  the  string  'GDOS'.  The same situation can also occur in most high
  14. level languages, by de-referencing a NIL pointer.
  15.  
  16. The  result  can  be anything from small errors upto a full blown GURU (if
  17. the  code  tries  to  de-ref  $0  as a pointer to a word - it will yield a
  18. non-word aligned word access)
  19.  
  20. This is a common problem (other programs that have trouble with a non zero
  21. location  0  are  virusx4,  lharc1.20,  execellence  1.11,  Jrcomm 1.0 and
  22. several others).
  23.  
  24. By  using  this tool you can set location zero to a 'problem' value before
  25. testing  your code - this will hopefully make the release of programs with
  26. such 'mistakes' less common.
  27.  
  28. You  can  also  set  it  back  to  $0000000 - useful after you've finished
  29. testing, and also potentially useful for people with a590s or 2091s.
  30.  
  31.